--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / frontend / js / reticulumPathfinding.js
Displaying Raw • Download
meshchatx/src/frontend/js/reticulumPathfinding.js db40ee7b0256e85be81753b7dcc9f7ee2c556e34 (db40ee7b) Text, 1.98 KB
Tff7b72const Te6edf3destinationPath Tff7b72= Tb4b4b4(Te6edf3hashTb4b4b4) Tb4b4b4=> Ta5d6ff`Ta5d6ff/api/v1/destination/Tffd700${Te6edf3hashTffd700}Ta5d6ff/pathTa5d6ff`Tb4b4b4;
T8b949e/**
* @param {import("axios").AxiosInstance} api
* @param {string} hash
* @param {{ request?: "0" | "1" | boolean, timeout?: number } & Record<string, string | number | boolean | undefined>} [params]
*/
Tff7b72export Tff7b72function Te6edf3getDestinationPathTb4b4b4(Te6edf3apiTb4b4b4, Te6edf3hashTb4b4b4, Te6edf3paramsTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3q Tff7b72= Tb4b4b4{ Tb4b4b4...Te6edf3params Tb4b4b4}Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3qTb4b4b4.Te6edf3request Tff7b72=== Tff7b72trueTb4b4b4) Tb4b4b4{
Te6edf3qTb4b4b4.Te6edf3request Tff7b72= Ta5d6ff"1"Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3qTb4b4b4.Te6edf3request Tff7b72=== Tff7b72falseTb4b4b4) Tb4b4b4{
Te6edf3qTb4b4b4.Te6edf3request Tff7b72= Ta5d6ff"0"Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3apiTb4b4b4.Te6edf3getTb4b4b4(Te6edf3destinationPathTb4b4b4(Te6edf3hashTb4b4b4)Tb4b4b4, Tb4b4b4{ Te6edf3paramsTff7b72: Te6edf3q Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72export Tff7b72function Te6edf3postRequestPathTb4b4b4(Te6edf3apiTb4b4b4, Te6edf3hashTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3apiTb4b4b4.Te6edf3postTb4b4b4(Ta5d6ff`Ta5d6ff/api/v1/destination/Tffd700${Te6edf3hashTffd700}Ta5d6ff/request-pathTa5d6ff`Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72export Tff7b72function Te6edf3postDropPathTb4b4b4(Te6edf3apiTb4b4b4, Te6edf3hashTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3apiTb4b4b4.Te6edf3postTb4b4b4(Ta5d6ff`Ta5d6ff/api/v1/destination/Tffd700${Te6edf3hashTffd700}Ta5d6ff/drop-pathTa5d6ff`Tb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e/**
* @typedef {"quick" | "force" | "drop_then_request"} PathFinderMode
*/
T8b949e/**
* @param {import("axios").AxiosInstance} api
* @param {string} hash
* @param {PathFinderMode} mode
* @param {{ forceTimeout?: number, onDropPathError?: (e: unknown) => void }} [options]
*/
Tff7b72export Tff7b72async Tff7b72function Te6edf3runDestinationPathFinderTb4b4b4(Te6edf3apiTb4b4b4, Te6edf3hashTb4b4b4, Te6edf3modeTb4b4b4, Te6edf3optionsTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3forceTimeout Tff7b72= Te6edf3optionsTff7b72?Tb4b4b4.Te6edf3forceTimeout Tff7b72?? T79c0ff15Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3mode Tff7b72=== Ta5d6ff"quick"Tb4b4b4) Tb4b4b4{
Tff7b72await Te6edf3postRequestPathTb4b4b4(Te6edf3apiTb4b4b4, Te6edf3hashTb4b4b4)Tb4b4b4;
Tff7b72return Tb4b4b4{ Te6edf3okTff7b72: Tff7b72trueTb4b4b4, Te6edf3pathTff7b72: Tff7b72null Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3mode Tff7b72=== Ta5d6ff"force"Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3res Tff7b72= Tff7b72await Te6edf3getDestinationPathTb4b4b4(Te6edf3apiTb4b4b4, Te6edf3hashTb4b4b4, Tb4b4b4{
Te6edf3requestTff7b72: Ta5d6ff"1"Tb4b4b4,
Te6edf3timeoutTff7b72: Te6edf3forceTimeoutTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72return Tb4b4b4{ Te6edf3okTff7b72: Tff7b72trueTb4b4b4, Te6edf3pathTff7b72: Te6edf3resTb4b4b4.Te6edf3dataTff7b72?Tb4b4b4.Te6edf3path Tff7b72?? Tff7b72null Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3mode Tff7b72=== Ta5d6ff"drop_then_request"Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72await Te6edf3postDropPathTb4b4b4(Te6edf3apiTb4b4b4, Te6edf3hashTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3optionsTff7b72?Tb4b4b4.Te6edf3onDropPathErrorTb4b4b4) Tb4b4b4{
Te6edf3optionsTb4b4b4.Te6edf3onDropPathErrorTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3warnTb4b4b4(Ta5d6ff"drop-path failed (continuing)"Tb4b4b4, Te6edf3eTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72await Te6edf3postRequestPathTb4b4b4(Te6edf3apiTb4b4b4, Te6edf3hashTb4b4b4)Tb4b4b4;
Tff7b72return Tb4b4b4{ Te6edf3okTff7b72: Tff7b72trueTb4b4b4, Te6edf3pathTff7b72: Tff7b72null Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff`Ta5d6ffunknown path finder mode: Tffd700${Te6edf3modeTffd700}Ta5d6ff`Tb4b4b4)Tb4b4b4;
Tb4b4b4}
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────